#!/usr/bin/python
# -*- coding: cp1250 -*-

import string

def roundedAmount(amt, strLen=[8, 7, 6, 5, 4, 3]):
    """ Check for rouded number.
        'Zeroes' can occur anywhere, number must not be 'perfect' rounding.
        e.g. 10000002, 10000000322 ...
    """
    sAmt = str(amt)

    if strLen == 8:
        if sAmt.find('00000000')>=0:
            return True
    if strLen == 7:
        if sAmt.find('0000000')>=0:
            return True
    if strLen == 6:
        if sAmt.find('000000')>=0:
            return True
    if strLen == 5:
        if sAmt.find('00000')>=0:
            return True
    if strLen == 4:
        if sAmt.find('0000')>=0:
            return True
    if strLen == 3:
        if sAmt.find('000')>=0:
            return True
    else:
        return False
    
def sequenceAmount(amt, strLen=[5, 4, 3]):
    """ Check for number sequence.
    """
    sAmt = str(amt)
    if 5 in strLen:
        if     sAmt.find('98765')>=0 or sAmt.find('87654')>=0 \
            or sAmt.find('76543')>=0 or sAmt.find('65432')>=0 \
            or sAmt.find('54321')>=0 or sAmt.find('43210')>=0 \
            or sAmt.find('56789')>=0 or sAmt.find('45678')>=0 \
            or sAmt.find('34567')>=0 or sAmt.find('23456')>=0 \
            or sAmt.find('12345')>=0:
            return True
    if 4 in strLen:
        if     sAmt.find('9876')>=0 or sAmt.find('8765')>=0 \
            or sAmt.find('7654')>=0 or sAmt.find('6543')>=0 \
            or sAmt.find('5432')>=0 or sAmt.find('4321')>=0 \
            or sAmt.find('6789')>=0 or sAmt.find('5678')>=0 \
            or sAmt.find('4567')>=0 or sAmt.find('3456')>=0 \
            or sAmt.find('2345')>=0 or sAmt.find('1234')>=0:
            return True
    if 3 in strLen:
        if     sAmt.find('987')>=0  or sAmt.find('876')>=0 \
            or sAmt.find('765')>=0  or sAmt.find('654')>=0 \
            or sAmt.find('543')>=0  or sAmt.find('321')>=0 \
            or sAmt.find('123')>=0  or sAmt.find('234')>=0 \
            or sAmt.find('345')>=0  or sAmt.find('456')>=0 \
            or sAmt.find('567')>=0  or sAmt.find('678')>=0 \
            or sAmt.find('789')>=0:
            return True
    else:
        return False

def repeatNumbersAmount(amt, strLen=[6, 5, 4, 3, 22, 33, 44]):
    """ Check for repeated sequences.
    """
    sAmt = str(amt)
    if 6 in strLen:
        if     sAmt.find('111111')>=0 \
            or sAmt.find('222222')>=0 or sAmt.find('333333')>=0 \
            or sAmt.find('444444')>=0 or sAmt.find('555555')>=0 \
            or sAmt.find('666666')>=0 or sAmt.find('777777')>=0 \
            or sAmt.find('888888')>=0 or sAmt.find('999999')>=0:
            return True
    if 5 in strLen:
        if     sAmt.find('11111')>=0 \
            or sAmt.find('22222')>=0 or sAmt.find('33333')>=0 \
            or sAmt.find('44444')>=0 or sAmt.find('55555')>=0 \
            or sAmt.find('66666')>=0 or sAmt.find('77777')>=0 \
            or sAmt.find('88888')>=0 or sAmt.find('99999')>=0:
            return True
    if 4 in strLen:
        if     sAmt.find('1111')>=0 \
            or sAmt.find('2222')>=0 or sAmt.find('3333')>=0 \
            or sAmt.find('4444')>=0 or sAmt.find('5555')>=0 \
            or sAmt.find('6666')>=0 or sAmt.find('7777')>=0 \
            or sAmt.find('8888')>=0 or sAmt.find('9999')>=0:
            return True
    if 3 in strLen:
        if     sAmt.find('111')>=0 \
            or sAmt.find('222')>=0 or sAmt.find('333')>=0 \
            or sAmt.find('444')>=0 or sAmt.find('555')>=0 \
            or sAmt.find('666')>=0 or sAmt.find('777')>=0 \
            or sAmt.find('888')>=0 or sAmt.find('999')>=0:
            return True
    if 44 in strLen:
        if     sAmt.find('88889999')>=0 or sAmt.find('77778888')>=0 \
            or sAmt.find('66667777')>=0 or sAmt.find('55556666')>=0 \
            or sAmt.find('44445555')>=0 or sAmt.find('33334444')>=0 \
            or sAmt.find('22223333')>=0 or sAmt.find('11112222')>=0:
            return True
    if 33 in strLen:
        if     sAmt.find('888999')>=0 or sAmt.find('777888')>=0 \
            or sAmt.find('666777')>=0 or sAmt.find('555666')>=0 \
            or sAmt.find('444555')>=0 or sAmt.find('333444')>=0 \
            or sAmt.find('222333')>=0 or sAmt.find('111222')>=0:
            return True
    if 22 in strLen:
        if     sAmt.find('8899')>=0 or sAmt.find('7788')>=0 \
            or sAmt.find('6677')>=0 or sAmt.find('5566')>=0 \
            or sAmt.find('4455')>=0 or sAmt.find('3344')>=0 \
            or sAmt.find('2233')>=0 or sAmt.find('1122')>=0:
            return True
    else:
        return False

def missingValue(amt):
    if len(string.split(amt)) == 0:
        missingValue = True
    else:
        missingValue = False
    return missingValue
